/*!
 *  main.c - H8/300H Tinyサンプルプログラム
 *
 *  日付        内容
 *  ----------- ------------------------------------------------
 *  2009/08/21  新規作成
 *  2009/08/22  割り込みルーチンにて、1秒ごとにLEDが消灯、点灯を繰り返えさせる。
 */
#include "vs-wrc003.h"
#include "led.h"

#include "36064.h"

int counter;

#pragma interrupt(int_timerb)

void int_timerb(void)
{
    IRR2.BIT.IRRTB1 = 0;        //  割り込みフラグレジスタをクリア
                                //  次の割り込みに備えてクリアする

    counter++;                  //  カウンタアップ

    //ある数に達したらLEDを点灯、消灯する
    if (counter == 225) {
        led_on(1);
        led_off(2);
    } else if (counter == (225*2)) {
        led_off(1);
        led_on(2);
    } else if (counter == (225*3)) {
        led_on(1);
        led_on(2);
    } else if (counter == (225*4)) {
        led_off(1);
        led_off(2);
        //ここでゼロに戻す
        counter = 0;
    }
}

int main()
{
    IENR2.BIT.IENTB1 = 0;       //タイマB1 のオーバフロー割り込み要求ディセーブル

    //初期化
    init_vs_wrc003();
    init_led();

    //とりあえず消灯
    led_off(1);
    led_off(2);

    //カウンタへ初期値をセット
    counter = 0;

    //タイマB1の初期化
    TB1.TLB1 = 0;               //カウントアップを開始する値
    TB1.TMB1.BIT.CKS = 0x03;    //内部クロック14.7456MHz/256=57.6kHz
    IENR2.BIT.IENTB1 = 1;       //タイマB1 のオーバフロー割り込み要求がイネーブル

    //無限ループ
    while (1) { ;; }

    return 0;
}
